package com.smileus.integration.caller;

import com.smileus.common.CallInfo;

/**
 * 接口服务调用器 FileName：Caller.java Date：2010-12-6 User: heng.dong 
 */
public interface Caller {
	/**
	 * serviceId形式为alipay.crm.userService.add,根据serviceId，定位到userService发布在哪些机器上
	 * ，然后根据负载均衡算法，选出合适的服务主机URL
	 * 
	 * @param ServiceCaller
	 * @return String
	 */
	public String getURL(String serviceId);

	/**
	 * 取到某个运用上的具体业务处理服务
	 * 
	 * @param ServiceCaller
	 * @return String
	 */
	public CallInfo getCallInfo(String serviceId);

	/**
	 * serviceId形式为alipay.crm.userService.add,根据serviceId，定位到userService发布在哪些机器上
	 * ，然后根据负载均衡算法，选出合适的服务主机URL,然后进行RPC服务调用
	 * 
	 * @param ServiceCaller
	 * @return String
	 */
	public String call(String serviceId, Object... param);

}
